1. Technical Field
The present invention relates generally to microelectronic integrated circuits. In particular, the present invention relates to a method, computer program product, and an apparatus for reducing turn-around-time in the physical design layout, routing and verification cycle of a microelectronic integrated circuit.
2. Description of the Related Art
Microelectronic integrated circuits (ICs) are fabricated by layering several different materials on a semiconductor wafer. The typical integrated circuit is formed from dozens of layers. These layers can be formed by depositing material on the integrated circuit such as metal and poly, growing material on the integrated circuit such as oxides, or doping areas of the integrated circuit with different impurities.
The design of the integrated circuit is a two part process. First, integrated circuits are functionally designed in a schematic circuit format. Secondly, the schematic format is then input into a physical layout environment wherein the layout of the polygons that make up the circuitry are physically designed.
The schematic design is developed by assembling a circuit from a collection of fundamental building blocks, known as library circuit elements, in a computer implemented environment. Basic circuit elements, such as transistors are reused over and over in a single integrated circuit. Most designs assemble groups of circuit elements into cells, and groups of cells into blocks. These blocks implement basic input/output (I/O), logic, analog and memory functions. The cells and blocks are then treated in the schematic design as a functional “black boxes” with ports defined to connect the blocks to other circuitry, with the internal definitions of the cells and blocks stored in another file. As “instances” of the same cell or block are reused in the integrated circuit design, the individual instances of the cells and blocks are implemented in the integrated circuit with unique names. The cells, and blocks are built up into a hierarchy of circuit elements and may be used again and again in the integrated circuit design (and in future integrated circuit designs). Designers prefer to reuse these blocks rather than recreating these common circuit elements for each new project. These blocks are ones that have proven quality and so their implementation saves time and resources. Larger reusable blocks, known as intellectual property (IP) blocks, can be designed in house, can be proprietary to a particular design house, or can be licensed from an outside vendor. Intellectual property blocks are supplied in either “hard” or “soft” form. A soft intellectual property block is simply a schematic design performing a given function. A hard intellectual property block specifies the physical layout as well, including the placement and wiring of individual elements. An integrated circuit design may primarily consist of intellectual property blocks and the interconnections between them. Each intellectual property block has at least one and typically more connection ports.
A port is an electrical connection point between the inner structure of a block and the integrated circuit interconnection circuitry outside the cell or block. A net is a set of two or more ports which are connected. Because a typical integrated circuit, at the lowest level of cell hierarchy, has hundreds of thousands of ports which must be connected in various combinations, the integrated circuit also has hundreds of thousands of nets, or sets of ports. All the ports of a net are connected. The number of nets for an integrated circuit is typically of the same order or greater than the order of the number of cells on that integrated circuit. However, looking at the highest level of integrated circuit hierarchy for an integrated circuit that consists primarily of hard intellectual property blocks, the number of ports for the integrated circuit is reduced to several hundred. Thus, the number of nets for the highest level of hierarchy of an integrated circuit is also reduced.
A netlist is a list of nets for an integrated circuit. Thus, a netlist is a file that contains the conversion of a high-level electronic circuit description into a list of cells and blocks and their interconnections. A netlist describes the device structures and connectivity of an electronic design. Netlists usually convey connectivity information and provide instances of cells and blocks, nets, and perhaps some attributes. Netlists can be flat or hierarchical. A flat (sometimes called exploded) netlist is a netlist of the lowest level of integrated circuit hierarchy. A hierarchical netlist preserves the cell, block and intellectual property block hierarchy used in the design. A flat (the lowest level of hierarchy) netlist has hundreds of thousands of lines of block and interconnection description. A hierarchical netlist (at least two levels of hierarchy) for the same integrated circuit may have only several hundred lines of interconnection description. All of the underlying circuitry and connectivity of the internals of the blocks are contained in a definition file. Hierarchical designs can be flattened into flat designs via recursive algorithms. This will generate a much larger database, but will also preserve the hierarchy. By providing a list of the instance names as one descends a hierarchy from the top definition to the lower definitions, one can derive a unique hierarchical path to any instance. These paths can be used to tie a flat design description to a hierarchical version of the same design. A netlist produced from the schematic design of the integrated circuit is called a schematic netlist.
The physical design of an integrated circuit transforms a circuit description into a geometric description which is known as a layout. A layout consists of a set of planar geometric shapes defining the topography of the integrated circuit layers. Upon completion and verification, the layout is then converted into pattern generator files that are used to produce patterns called masks or reticles by an optical or electron beam pattern generator. These reticles are used to pattern each layer. The typical integrated circuit will have many reticles. Due to the large number of components and the exacting details required by the fabrication process, layout design is not practical without the aid of computers. As a result, most phases of layout design extensively use computer aided design (CAD) tools, and many phases have already been partially or fully automated. One example of a physical layout computer aided design tool is the IC Station® Tool Suite from Mentor Graphics. Mentor Graphics is located in Wilsonville, Oreg. This tool includes application bundles for schematic-driven layout, editing the layout, and top-level floor planning and interconnection routing.
The objective of physical design is to determine an optimal arrangement of cells and blocks and an efficient interconnection or routing scheme between them to obtain the desired functionality in the smallest area practical. The input to the physical design computer aided design tool is typically a schematic of the circuit, in the form of a schematic netlist. The output of physical design computer aided design tool is a geometric design system (GDSH) file, stored in the geometric design system database which specifies the physical polygons making up each layer of the circuit. Geometric design system file format is the current industry de facto standard, the format is owned by Cadence®. Geometric design system stream format is a binary format for representation of planar geometric shapes, text labels and some other information in hierarchical form. Geometric design system is the most commonly used format for transfer of integrated circuit layout data between design tools from different vendors which operate with proprietary data formats. Some integrated circuit design tools are beginning to support a new format, Open Artwork System Interchange Standard (OASIS(™)).
After the layout (or a portion of the layout) has been finished, the next step is the verification analysis. Verification analysis consists of extracting the layout design file and comparing it against the schematic design file. A verification software tool is used in this process. An example of third party verification software tool is Calibre® a registered trademark of the Mentor Graphics, Inc. A verification software tool performs the function of providing device and connectivity comparisons between the integrated circuit layout and the schematic. The layout versus schematic verification comparison is the process of comparing the schematic netlist against the layout netlist.
Using a set of instructional code input into the verification software tool, called a rundeck; the verification software tool does the verification in a two step process; extraction and comparison. The rundeck gives instructions to the verification software tool and identifies the correct files needed for the verification. These files include the geometric design system layout database, the schematic netlist from the designer, the cell definition file including intellectual property blocks, and a pad reference file. A typical rundeck is a set of code that contains the location of all of the files needed for comparison between the schematic and the layout as well as other lines of code containing the information needed to extract the device and connectivity of the integrated circuit. This other information includes layer definitions which identifies the layers that are used in the layout file and matches a description of a layer to the layer's location in the geometric design system file. Also included in the rundeck are additional device structures definitions. Additional device structure definitions are device structures that are defined in the rundeck and not found in the cell definition file. An example of these additional device structures may be capacitors that are defined in metal layers.
A pad is where the integrated circuit is eventually connected to the outside world. Signals to and from the integrated circuit go through the pads. A pad reference file identifies what types of signals are designed for each pad; the layout coordinates of the pad and the pad's layer in the geometric design system file. The rundeck references the appropriate pad reference file whether verification is to be run on an entire integrated circuit or a subpart of the integrated circuit such as a hard intellectual property block.
In the first step of the verification analysis, the verification software tool first takes the geometric design system file and breaks it down into a layout netlist file. This process is called extraction. During extraction, the verification software tool flattens the layout design into its most basic design elements, such as individual Nmos and Pmos transistors. The verification software tool does this by recognizing layers and shapes that make up circuitry or the by the cell definitions that are defined in the cell definition file and the additional device structure definitions contained in the rundeck. Optionally, based on a verification software tool selection, the extraction process could extract a higher level of hierarchy of the layout contained in the geometric design system database. The verification software tool extraction process will identify unintentional circuit elements in the layout even during a high level hierarchical extraction. The verification software tool will recognize cell definitions if defined layers and shapes are present in the geometric design system database. The extraction of unintentional circuit structure, such as parasitic capacitors or transistors can be a valuable tool for layout engineers. However, if the unintentional circuit structure has been resolved in previous iterations of the integrated circuit verification, the unintentional circuit structure extraction add bulk and complexity to the layout netlist.
The second step in the verification analysis process is the comparison of the schematic netlist versus the extracted layout netlist. The comparison environment of the verification software tool uses the rundeck to identify the schematic netlist to be compared to the layout netlist produced by the verification software tool's extraction environment. The intention of the physical layout process is to implement the schematic design of the integrated circuit into the space and layers of the integrated circuit. Therefore, the schematic netlist and the layout netlist must match for verification to be completed without error. As the size and complexity of the extracted layout netlist increases, so does the resulting comparison process. Schemes to do the comparison are well known to those of ordinary skill in the art and will not be further discussed here.
The output of the verification software tool is a Layout Versus Schematic (LVS) Error Report. The layout engineer uses the Layout Versus Schematic Error Report to resolve any mismatches between the schematic netlist and the layout netlist. Any additional bulk and complexity in the layout netlist extracted translates into a longer and more complex Layout Versus Schematic Error Report.